"""
1.程序可以通过创建新的异常，不论是直接还是间接的方式,异常都应该从Exception类派生
2.异常类通常应该保持简单,他往往只是提供一些属性,允许响应的异常处理程序提取相关错误的信息
3.大多数异常命名都以Error结尾,类似标准异常的命名,但是需要注意不要使用内置异常名
"""
#当我们接收Person年龄的时候,要求范围在10-120之间,否则抛出一个自定义异常,并给出提示信息(循环提示)
#直到输入了正确的年龄

#自定义异常AgeError
#继承Exception基异常类
class AgeError(Exception):
    pass

while True:
    try:
        #这里是有可能会出现异常的
        age = int(input("请输入年龄(18-120):"))
        #要求年龄范围在18-120之间
        #开发技巧,可以先写出正确的范围,然后取反
        if not (18 <= age <= 120):
            #rasie 主动抛出异常 【相当于其他语言的throw】
            #之前我为了python的事情纠结了很久
            raise AgeError("年龄需要再18-120之间")
        break
    except ValueError as e:
        print("你输入的不是整数")
    except AgeError as e:
        print(e)
